The invention relates to a device for correcting and concealing errors in a data stream which is organized in a succession of data blocks, each data block being converted into a code block consisting of code elements according to an error protection code having at least error-correcting properties by addition of redundancy, the code elements being received from a medium as being systematically distributed over an interval which corresponds to the length of several data blocks, said device comprising:
(a) an input device which includes a regrouping element for regrouping the code elements in code blocks; PA0 (b) a correction device for reconstructing the associated data block from a regrouped code block while performing a correction, if possible and necessary, and forming a correction signalling; PA0 (c) a concealing device for concealing, under the control of said correction signalling, a data element in order to prevent errors due to inadequacy of the error correction by replacing said data element by a supplementary data element; and PA0 (d) an output device for converting the corrected or substitute data elements into a continuous signal stream. Such a device is known from U.S. Pat. No. 4,329,708. A signal which represents, for example an audio or video quantity, is first converted into a seires of data elements. A data element can be understood to mean a bit or a multi-bit symbol. Redundancy is added thereto in accordance with an error protection code having at least error-correcting properties. Many error-correcting codes are known--for example, Hamming codes for bit correction and Reed-Solomon codes for the correction of symbols. Also known are error-detecting codes--for example, codes involving cyclic checking of redundancy (CRC); moreover, many error-correcting codes also have error-detecting properties. The code blocks consist of code elements. A sub-class of codes, so-called systematic codes, enable division of the code elements into data elements (originating from the source) and added redundancy elements. This division is not possible in the case of non-systematic codes. In many codes code elements of a block are distributed over an interval of successive data blocks; this is also referred to as interleaving. Said medium may be a transmission link. It may alternatively be a storage medium such as a magnetically or optically readable disc, a magnetic tape or otherwise. For the recovery of the signal (whether for reproduction or not), the data elements must be decoded in data blocks, followed by reconversion into said signal. PA0 (a) there are no errors so no further steps need be taken; PA0 (b) there is an error and this error is not beyond the correction capability of the code, so that it can be corrected; PA0 (c) there is an error which is beyond the correction capability of the code so that it cannot be corrected or not adequately corrected. PA0 (c1) the correction device signals the inadequacy of the correction capability; PA0 (c2) this inadequacy is not signalled; an incorrect or inadequate correction may then take place, or the correction may be completely omitted.
Two categories of errors can occur during the described operation. First, there are random errors. These errors are a concern for every data element, and the chance of an error occuring is independent of the occurrence of an error in a neighboring data element. Such an error can be caused by electrical interference, by cosmic rays and the like. The chance of occurrence of an error, calculated per data element is usually much smaller than 10.sup.-3. Also known are so-called burst errors. This means that the chance of errors occurring in each element of a series of successive code elements originating from the medium during a time interval is high. Such an error can be caused, for example by a scratch on a magnetic tape. The error probability, calculated per code element, is then high; for a bit stream having an arbitrary content per bit it may be as high as a maximum of approximately 50%, and for multi-bit code elements, it may even be higher. The distribution of the code elements over an interval covering several data blocks allows for a reduced number of errors per code block upon decoding. This is usually also applicable when errors occur in the form of a burst. Prior to decoding the code elements must be regrouped so as to form the original code blocks again.
Upon decoding several situations are feasible:
All three cases can be made known to the environment by way of correction signalling. In the case (c) two different possibilities exist:
In the case (c1), the concealing device becomes operative. Concealing can be performed by the addition of a supplementary code element. Implicitly a supplementary data element is thus also inserted. Direct insertion of the supplementary data element is also possible. The inserted element may have a fixed content; for example, in a two-dimensional picture it may be standard dark-grey. Another method consists of interpolation or substitution or the use of a filter. In all cases the substitute code element is constructed for one or more other data elements. Such concealing is generally suitable only when a given idea exists as regards the data content of the data elements to be ultimately reconstructed. For arbitrary series of data elements such concealing would usually be inadmissible.
It sill be apparent that the case (c2) is problematic. The invention is based on the idea that a positive correlation exists between the inadequacy of the correction capability for a given code block and a correction signalling in a neighboring code block which indicates that a disturbance, even if it is a correctable disturbance, is also present therein. The invention is also based on the recognition of the fact that on the one hand burst errors may give rise to disturbed states which can not be detected as such and which can thus cause incorrect correction. In given circumstances this may cause a disturbed reproduction of the original data, for example an acoustic "click". On the other hand, the invention is also based on the recognition of the fact that it is advantageous to utilize the correction capability of the code as fully as possible and to refrain from premature concealing because such concealing does not benefit the reproduction quality either.